package controller;

import java.util.ArrayList;

import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;

import model.ArticuloComponente;
import model.vos.Articulo;
import model.vos.Kit;

import view.gui.DatosKit;
import view.gui.TreeKits;
import view.gui.VentaContainer;
import view.gui.altaComponente.AltaContainer;

public class CTreeKits {
	
	TreeKits tree;
	
	public CTreeKits(TreeKits treeKits){
		tree = treeKits;
		
		tree.listenerTreeSelection(new TreeSelectionListener() {
			
			@Override
			public void valueChanged(TreeSelectionEvent e) {
				// TODO Auto-generated method stub								
				
				DatosKit dk = tree.getKitMain().getDatosKit();
				JTable tabla =  dk.getTablaDatos();
				DefaultTableModel modeloTabla = (DefaultTableModel)tabla.getModel();
				
				
				String NOMBRE = "Nombre";
				String DESC = "Descripcion";
				String PRECIO = "Precio";
				String TEMP = "Temporada";				
				
				//Borra las filas
				modeloTabla.setRowCount(0);							    		   			    
			    
			    TreePath path = e.getPath();
				Object parent = path.getParentPath().getLastPathComponent();					    
				Object nodoPadre;
				
				//Si le dan click  al padre (sin importar si esta desplegado o no )
				if (parent.toString() == "KITS"){
			    	
					Object obj =  path.getLastPathComponent();
					nodoPadre = ((DefaultMutableTreeNode)obj).getUserObject();
			    }
				//Si le dan click a un hijo.
				else{
					nodoPadre = ((DefaultMutableTreeNode)parent).getUserObject();
				}
				
				Kit kitObj = (Kit)nodoPadre;
				ArrayList<ArticuloComponente> arts = kitObj.getChildren();
				
				JTextArea jtDesc = dk.getJtDesc();
				JTextField jfNombre = dk.getJfNombre();				
				JTextField jfIdKit = dk.getJfIdKit();
				JTextField jfPrecio= dk.getJfPrecio();
				JTextField jfTemporada = dk.getJfTemporada();
				
				
				jtDesc.setText(kitObj.getDescripcion());
				jfNombre.setText(kitObj.getNombre());
				jfIdKit.setText(kitObj.getId());
				jfPrecio.setText(""+kitObj.getPrecio() );
				jfTemporada.setText(kitObj.getTemporada());
				
				for(ArticuloComponente artKit: arts){
					Articulo art = (Articulo) artKit;
					modeloTabla.addRow(new Object[]{art.getNombre(),art.getDescripcion(),art.getPrecio()});				
				}
				
			}
		});
	}

}
